\section{Spezifikation}
Es soll eine programmierbare Fernbedienung implementiert werden, die verschiedene Geräte ein- und ausschalten kann. Verfügbar sind 6 programmierbare Slots mit jeweils einer On- und Off-Taste. Weiters existieren ein Undo-Button, welcher das letzte Kommando zurücknimmt und ein Button, um den aktuellen Status der Geräte auszugeben. Bendient werden können TV-Geräte, die Heizung und Stereoanlagen, wobei diese zusätzlich zum Ein- und Ausschalten auch noch das CD-Laufwerk öffnen bzw. schließen.\\
Ein freier Slot der Fernbedienung ist automatisch mit einem NoCommand-Object belegt. Wenn ein Slot neu programmiert wird, werden die bestehenden Kommandos ohne Rückmeldung überschrieben.\\
Ein Client verwaltet die Geräte und gibt deren Zustände aus. Dieser übernimmt zugleich den Testtreiber, da er die Slots der Fernbedienung programmiert.
Der Client stellt weiters ein Interface für die Bedienung der Fernbedienung zur Verfügung.

\subsection{Benützung des Kommando-Interfaces}
Beendet wird das Intferface mit 'e'.
Für die Ausgabe der Geräteinformationen wird 'i' gedrückt und für die Undo-Funktion 'u'.
Um ein Gerät aus- oder einzuschalten wird die Slotnummer angegeben und gleich darauf 'o' für Einschalten und 'f' für Ausschalten.